﻿var ns, toast, actionsheet,imageBrowser, WXPhotoPicker, docReader, fileBrowser;
var app = new Vue({
    el: '#app',
    data: {
        chooseType:1,
        show:false,
        showup:false,
        writeCount:0,//输入的文字数量
        examine_writenum:0,//审批原因字数
        wenjianlist:[],
        maxuploadcount: CONFIG.maxuploadcount,
        outTypemsg:[],
        tdTitle:'',//审批标题
        tdMoney:0,//申请金额
        tdRemark:'',//审批原因
        VisitType:'',//审批类型ID
        VisitTypeName:'',//审批类型
        Remark:'',//申请说明
        ApprovalUserID: [],//审批人
        SendUserIDs: [],//抄送人
        fileList:[],//文件id
        select_id_list:[],//选中的抄送人员(多选)
        choose_id_list:[],//选中的审批人员(单选)
        fileID:1,
         //审批-附件
         exshowup: false,
         exmaxuploadcount: CONFIG.maxuploadcount,
         exUploadList: [],
         exFileList: [],
    },
    methods: {
        // 选择类型
        do_choose_type:function(){
            var that=this;
            ns.openWin('neibubaoshi_typelist', '类型选择', {
                ShenHeType: 1,
            });
        },
        // get_outTypemsg: function () {
        //     var that = this;
        //     var options = {};
        //     options.action = 'loadtsealbasic';
        //     ns.post(options, function (succeed, data, err) {
        //         if (succeed) {
        //             if (data.status) {
        //                 that.outTypemsg =that.syncChildID2String(data.tongyong_list);
        //                 // if(data.tongyong_list.length>0){
        //                 //     that.VisitType = data.tongyong_list[0].ID;
        //                 //     that.VisitTypeName = data.tongyong_list[0].Name;
        //                 // }
        //             }
        //         } else {
        //             api.toast({
        //                 msg: err,
        //                 duration: 2000,
        //                 location: 'bottom'
        //             });
        //         }
        //     });
        // },
        // syncChildID2String:function(e) {
        //     e.map(res => {
        //         if (res.children.length > 0) {
        //             this.syncChildID2String(res.children)
        //         } else {
        //             delete res.children
        //         }
        //         res.value=res.ID + ""
        //         res.id = res.id + ""
        //         res.ID = res.ID + ""
        //         return res
        //     })
        //     return e
        // },
        // onFinish:function({ selectedOptions }){
        //     var that=this;
        //     that.show = false;
        //     var Typetext= selectedOptions.map((option) => option.text).join('/');
        //     var i = Typetext.lastIndexOf('/');
        //     var j = Typetext.length;
        //     that.VisitTypeName= Typetext.slice(i + 1, j);
        // },
        // // 选择类型
        // doSelectRoom:function(item){
        //     var that=this;
        //     that.show=false;
        //     that.VisitType=item.ID;
        //     that.VisitTypeName=item.Name;
        // },
        //原因限制字数
        writeMsg:function(){
            var that=this;
            var testVal = that.tdRemark.length;
            that.writeCount=testVal;
        },
        //审批申请限制字数
        examine_writeMsg:function(){
            var that=this;
            that.examine_writenum = that.Remark.length;
        },

         //上传附件
         do_openUp:function(){
            var that=this;
            that.showup=true;
        },
        //上传图片
        add_picture: function () {
            var that = this;
            that.showup=false;
            ns.confirmPer('camera', function () {
                that.choose_picture_start();
            })
        },
        choose_picture_start:function(){
            var that = this;
            if (that.wenjianlist.length >= that.maxuploadcount) {
                api.toast({
                    msg: '最多支持' + that.maxuploadcount + '张图片',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            api.actionSheet({
                cancelTitle: '取消',
                buttons: ['拍照', '从相册选择']
            }, function(ret, err) {
                //拍照
                if(ret.buttonIndex==1){ 
                    that.upload_choose_picture();
                    return;
                }
                //从相册选择
                if(ret.buttonIndex==2){
                    that.choose_picture_album();
                    return;
                } 
                //取消 
                else{
                    return false;  
                }  
            });
        },
        upload_choose_picture:function(){
            var that = this;
            api.getPicture({
                sourceType: 'camera',
                encodingType: 'jpg',
                destinationType: 'url',
                allowEdit: false,
                saveToPhotoAlbum: true,
            }, function(ret, err) {
                if (ret&&ret.data) {
                    var list = [];
                    list.push({
                        url: ret.data,
                    });
                    const params = {
                        action: "uploadfileone",
                    }
                    ns.post(params, function (succeed, data, err) {
                        if (succeed) {
                            // that.file.ID = data.file.ID;
                            // that.file.CredentialName = data.file.FileName;
                            // that.file.CredentialUrl = data.file.FullPath;
                            that.wenjianlist.push(data.file);
                            // that.file.TypeName= data.file.ContentType;
                            // console.log(JSON.stringify(that.wenjianlist));
                        }
                    }, {
                        files: {
                            file: list[0].url
                        }
                    })
                } 
            });
        },
        choose_picture_album:function(){
            var that = this;
            WXPhotoPicker.open({
                max: that.maxuploadcount - that.wenjianlist.length,
                type:'image',
            }, function(ret) {
                if (ret) {
                    if (ret.list.length > 0) {
                        ret.list.forEach((item) => {
                            var list = [];
                            list.push({
                                url: item.path,
                            });
                            const params = {
                                action: "uploadfileone",
                            }
                            ns.post(params, function (succeed, data, err) {
                                if (succeed) {
                                    that.wenjianlist.push(data.file);
                                }
                            }, {
                                files: {
                                    file: list[0].url
                                }
                            })
                        });
                    }
                }
            });
        },
        //上传文件
        add_wenjian: function () {
            var that = this;
            that.showup=false;
            fileBrowser.open({
                confirm: true
            }, function (ret) {
                fileBrowser.close();
                if (ret) {
                    const url = ret.url || ""
                    const params = {
                        action: "fileupload",
                    }
                    ns.post(params, function (succeed, data, err) {
                        if (succeed) {
                            if(data.imgs&&data.imgs.length>0){
                                that.wenjianlist.push(data.imgs[0]);
                            }
                        }
                    }, {
                        files: {
                            file: [url]
                        }
                    })
                    return;
                }
                return false;
            });
        },
        add_vedio: function () {
            var that = this;
            that.showup = false;
            ns.confirmPer('camera', function () {
                that.choose_video_start();
            })
        },
        choose_video_start: function () {
            var that = this;
            WXPhotoPicker.open({
                max: that.maxuploadcount - that.wenjianlist.length,
                type:'video',
            }, function(ret) {
                if (ret) {
                    if (ret.list.length > 0) {
                        ret.list.forEach((item) => {
                            var list = [];
                            list.push({
                                url: item.path,
                            });
                            const params = {
                                action: "uploadfileone",
                            }
                            ns.post(params, function (succeed, data, err) {
                                if (succeed) {
                                    that.wenjianlist.push(data.file);
                                }
                            }, {
                                files: {
                                    file: list[0].url
                                }
                            })
                        });
                    }
                }
            });
        },
        open_flie: function (item,index) {
            var that = this;
            var i = item.FileName.lastIndexOf('.');
            var j = item.FileName.length;
            var nameType= item.FileName.slice(i + 1, j);
            if(nameType=='png'||nameType=='jpg'||nameType == 'jpeg'||nameType=='tif'||nameType=='gif'){
                that.img_browser(item.FilePath);
            } else if (nameType == 'mp4'||nameType == 'wmv'||nameType == 'rmvb'||nameType == 'avi') {
                that.open_video(item);
            }
            else{
                that.do_openFile(item);
            }
            
        },
        // 播放视频
        open_video: function (item) {
            var that = this;
            var module = api.require('easyVideoPlayer');
            var param = {
                msg: item.FilePath
            };
            api.download({
                url: item.FilePath,
                savePath: 'fs://app/' + item.FileName,
                report: true,
                cache: true,
                allowResume: true
            }, function (ret, err) {
                if (ret.state == 1) {
                    module.playVideo(param);
                }
            })
        },
        img_browser: function(imgurl) {
            var that = this;
            var imgurls = [];
            imgurls.push(imgurl);
            imageBrowser.openImages({
                imageUrls: imgurls,
                showList: false,
                activeIndex: 0
            });
        },
        do_openFile:function(item){
            api.download({
                url: item.FilePath,
                savePath: 'fs://app/' + item.FileName,
                report: true,
                cache: true,
                allowResume: true
            }, function (ret, err) {
                if (ret.state == 1) {
                    docReader.open({
                        path: ret.savePath,
                        autorotation: false
                    }, function(ret, err) {
                        if (ret.status) {
                            // alert(JSON.stringify(ret));
                        } else {
                            alert(JSON.stringify(err));
                        }
                    });
                }else{
                    api.toast({
                        msg: '打开失败',
                        duration: 2000,
                        location: 'bottom'
                    });
                }
            })
        },
        //删除文件
        do_delete: function (id) {
            var that=this;
            that.wenjianlist = that.wenjianlist.filter((item) => {
                return item.ID != id
            });
        },


        //提交
        do_save:function(){
            var that = this;
            var SendUserIDs = [];

            if (that.VisitTypeName == "") {
                api.toast({
                    msg: '请选择审批类型',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            if (that.tdTitle=='') {
                api.toast({
                    msg: '请填写审批标题',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            if (that.tdRemark=='') {
                api.toast({
                    msg: '请填写审批原因',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            if (that.choose_id_list.length <= 0) {
                api.toast({
                    msg: '请选择审批人',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            
            for (var i = 0; i < that.wenjianlist.length; i++) {
                var item = that.wenjianlist[i].ID;
                that.fileList.push(item);
            }
            for (var i = 0; i < that.choose_id_list.length; i++) {
                var item = that.choose_id_list[i].UserID;
                that.ApprovalUserID.push(item);
            }

            for (var i = 0; i < that.select_id_list.length; i++) {
                var item = that.select_id_list[i].UserID;
                SendUserIDs.push(item);
            }
            that.SendUserIDs = JSON.stringify(SendUserIDs);
            //审批-附件
              that.exFileList=[];
              for (var i = 0; i < that.exUploadList.length; i++) {
                  var item = that.exUploadList[i].ID;
                  that.exFileList.push(item);
              }
            var options={};
            options.ApprovalUserID=JSON.stringify(that.ApprovalUserID);
            options.SendUserIDs=that.SendUserIDs;
            options.Type=2;
            options.tdSealBasics=that.VisitType;
            options.tdTitle=that.tdTitle;
            options.tdMoney=that.tdMoney;
            options.tdRemark=that.tdRemark;
            options.Remark=that.Remark;
            options.fileList=JSON.stringify(that.fileList);
            options.exFileList = JSON.stringify(that.exFileList);
            options.action='savasealapplication';
            ns.post(options, function (succeed, data, err) {
                if (succeed) {
                    api.toast({
                        msg: '提交成功',
                        duration: 2000,
                        location: 'bottom'
                    });
                    api.sendEvent({
                        name: 'purchase_updata',
                    });
                    api.sendEvent({
                        name:'reloadexaminelist'
                    })
                    setTimeout(() => {
                        api.closeWin();
                    }, 400);
                } else if (err) {
                    api.toast({
                        msg: err,
                        duration: 2000,
                        location: 'bottom'
                    });
                }
            });
        },
        //查看全部人员
        open_more:function(type){
            var that=this;
            //审批全部
            if(type==1){
                ns.openWin('examine_Allperson', '全部审批人员', {
                    list: that.choose_id_list,
                    type:type,
                 }); 
            }else if(type==0){
                ns.openWin('examine_Allperson', '全部抄送人员', {
                    list: that.select_id_list,
                    type:type,
                 }); 
            }
        },

        //选择人
        choose_persons: function(IsApproval) {
            var that = this;
            that.chooseType=IsApproval;
            // IsApproval==0//抄送
            if(IsApproval==0){
                // ns.openWin('chooseperson_frm', '请选择', {
                //         source: 'transfer',
                // }); 
                ns.openWin('chooseuser_frm', '请选择抄送人', {
                    source: 'transfer',
                }); 
            }
            //IsApproval==1//审批
            if(IsApproval==1){
                // ns.openWin('chooseperson_frm', '请选择' , {
                //     source: 'transfer',
                // }); 
                ns.openWin('chooseuser_frm', '请选择审批人' , {
                    source: 'transfer',
                }); 
            }
               
        },
        //移除抄送人
        guanbi_pic:function(id,IsApproval){
            var that=this;
            that.chooseType=IsApproval;
            if(that.chooseType==1){
                // that.choose_id_list.splice(index,1);
                that.choose_id_list = that.choose_id_list.filter((item) => {
                    return item.UserID != id
                    });
            }
            if(that.chooseType==0){
                // that.select_id_list.splice(index,1);
                that.select_id_list = that.select_id_list.filter((item) => {
                    return item.UserID != id
                    });
            }
            
        },
        // 抄送人
        select_person:function(select_list,type){
            var that=this;
            if(type==0){
                for (var i = 0; i < select_list.length; i++) {
                    var item = select_list[i];
                    that.select_id_list.push(item);
                }
            }else{
                for (var i = 0; i < select_list.length; i++) {
                    var item = select_list[i];
                    that.choose_id_list.push(item);
                }
            }
            
            let obj = {};
            if(type==0){
                let peon = that.select_id_list.reduce((cur,next) => {
                    obj[next.UserID] ? "" : obj[next.UserID] = true && cur.push(next);
                    return cur;
                },[]) ;
                that.select_id_list=peon;
            }else{
                let peon = that.choose_id_list.reduce((cur,next) => {
                    obj[next.UserID] ? "" : obj[next.UserID] = true && cur.push(next);
                    return cur;
                },[]) ;
                that.choose_id_list=peon;
            }
           
        },
        //审批-上传附件
        do_openUp_ex: function () {
            var that = this;
            that.exshowup = true;
        },
        //上传图片
        add_picture_ex: function () {
            var that = this;
            that.exshowup = false;
            ns.confirmPer('camera', function () {
                that.choose_picture_start_ex();
            })
        },
        choose_picture_start_ex: function () {
            var that = this;
            if (that.exUploadList.length >= that.exmaxuploadcount) {
                api.toast({
                    msg: '最多支持' + that.exmaxuploadcount + '张图片',
                    duration: 2000,
                    location: 'bottom'
                });
                return;
            }
            api.actionSheet({
                cancelTitle: '取消',
                buttons: ['拍照', '从相册选择']
            }, function (ret, err) {
                //拍照
                if (ret.buttonIndex == 1) {
                    that.upload_choose_picture_ex();
                    return;
                }
                //从相册选择
                if (ret.buttonIndex == 2) {
                    that.choose_picture_album_ex();
                    return;
                }
                //取消 
                else {
                    return false;
                }
            });
        },
        upload_choose_picture_ex: function () {
            var that = this;
            api.getPicture({
                sourceType: 'camera',
                encodingType: 'jpg',
                destinationType: 'url',
                allowEdit: false,
                saveToPhotoAlbum: true,
            }, function (ret, err) {
                if (ret && ret.data) {
                    var list = [];
                    list.push({
                        url: ret.data,
                    });
                    const params = {
                        action: "uploadfileone",
                    }
                    ns.post(params, function (succeed, data, err) {
                        if (succeed) {
                            that.exUploadList.push(data.file);
                        }
                    }, {
                        files: {
                            file: list[0].url
                        }
                    })
                }
            });
        },
        choose_picture_album_ex: function () {
            var that = this;
            WXPhotoPicker.open({
                max: that.exmaxuploadcount - that.exUploadList.length,
                type: 'image',
            }, function (ret) {
                if (ret) {
                    if (ret.list.length > 0) {
                        ret.list.forEach((item) => {
                            var list = [];
                            list.push({
                                url: item.path,
                            });
                            const params = {
                                action: "uploadfileone",
                            }
                            ns.post(params, function (succeed, data, err) {
                                if (succeed) {
                                    that.exUploadList.push(data.file);
                                }
                            }, {
                                files: {
                                    file: list[0].url
                                }
                            })
                        });
                    }
                }
            });
        },
        //上传视频
        add_vedio_ex: function () {
            var that = this;
            that.exshowup = false;
            ns.confirmPer('camera', function () {
                that.choose_video_start();
            })
        },
        choose_video_start_ex: function () {
            var that = this;
            WXPhotoPicker.open({
                max: that.exmaxuploadcount - that.exUploadList.length,
                type: 'video',
            }, function (ret) {
                if (ret) {
                    if (ret.list.length > 0) {
                        ret.list.forEach((item) => {
                            var list = [];
                            list.push({
                                url: item.path,
                            });
                            const params = {
                                action: "uploadfileone",
                            }
                            ns.post(params, function (succeed, data, err) {
                                if (succeed) {
                                    that.exUploadList.push(data.file);
                                }
                            }, {
                                files: {
                                    file: list[0].url
                                }
                            })
                        });
                    }
                }
            });
        },
        // 播放视频
        open_video_ex: function (item) {
            var that = this;
            var module = api.require('easyVideoPlayer');
            var param = {
                msg: item.FilePath
            };
            api.download({
                url: item.FilePath,
                savePath: 'fs://app/' + item.FileName,
                report: true,
                cache: true,
                allowResume: true
            }, function (ret, err) {
                if (ret.state == 1) {
                    module.playVideo(param);
                }
            })
        },
        //上传文件
        add_wenjian_ex: function () {
            var that = this;
            that.exshowup = false;
            fileBrowser.open({
                confirm: true
            }, function (ret) {
                fileBrowser.close();
                // alert(JSON.stringify(ret))
                // alert(JSON.stringify(ret && ret.status))
                if (ret) {
                    const url = ret.url || ""
                    var i = url.lastIndexOf('.');
                    var j = url.length;
                    var wenjianName = url.slice(i + 1, j);
                    const params = {
                        action: "fileupload",
                    }
                    ns.post(params, function (succeed, data, err) {
                        if (succeed) {
                            if(data.imgs&&data.imgs.length>0){
                                that.exUploadList.push(data.imgs[0]);
                            }
                        }
                    }, {
                        files: {
                            file: [url]
                        }
                    })
                    return;
                }
                return false;
            });
        },
        open_flie_ex: function (item, index) {
            var that = this;
            var i = item.FileName.lastIndexOf('.');
            var j = item.FileName.length;
            var nameType = item.FileName.slice(i + 1, j);
            if (nameType == 'png' || nameType == 'jpg' || nameType == 'jpeg' || nameType == 'tif' || nameType == 'gif') {
                that.img_browser_ex(item.FilePath);
            } else if (nameType == 'mp4' || nameType == 'wmv' || nameType == 'rmvb' || nameType == 'avi') {
                that.open_video_ex(item);
            } else {
                that.do_openFile_ex(item);
            }
        },
        img_browser_ex: function (imgurl) {
            var that = this;
            var imgurls = [];
            imgurls.push(imgurl);
            imageBrowser.openImages({
                imageUrls: imgurls,
                showList: false,
                activeIndex: 0
            });
        },
        do_openFile_ex: function (item) {
            api.download({
                url: item.FilePath,
                savePath: 'fs://app/' + item.FileName,
                report: true,
                cache: true,
                allowResume: true
            }, function (ret, err) {
                if (ret.state == 1) {
                    docReader.open({
                        path: ret.savePath,
                        autorotation: false
                    }, function (ret, err) {
                        if (ret.status) {
                            // alert(JSON.stringify(ret));
                        } else {
                            alert(JSON.stringify(err));
                        }
                    });
                } else {
                    api.toast({
                        msg: '打开失败',
                        duration: 2000,
                        location: 'bottom'
                    });
                }

            })
        },
        //删除文件
        do_delete_ex: function (id) {
            var that = this;
            that.exUploadList = that.exUploadList.filter((item) => {
                return item.ID != id
            });
        },
        

    }
});

apiready = function () {
    api.parseTapmode();
    ns = window.Foresight.Util;
    toast = new auiToast();
    actionsheet = new auiActionsheet();
    WXPhotoPicker = api.require('WXPhotoPicker');
    imageBrowser = api.require('imageBrowser');
    fileBrowser = api.require('fileBrowser');
    docReader = api.require('docReader');
    api.addEventListener({
        name: 'purchase_add'
    }, function (ret) {
        if( app.chooseType==1){
            var chooselist=ret.value.data;
            app.select_person(chooselist,1);
            // app.choose_id_list=ret.value.data;
        }
        if( app.chooseType==0){
            var select_list=ret.value.data;
            app.select_person(select_list,0);
        }

    })
    api.addEventListener({
        name: 'purchase_update'
    }, function (ret) {
        if( ret.value.type==1){
            app.choose_id_list=ret.value.data;
        }
        if( ret.value.type==0){
            app.select_id_list=ret.value.data;
        }

    })

    api.addEventListener({
        name: 'do_open_neibubaoshi'
    }, function (ret, err) {
        ns.openWin('purchase_list', '申请记录');
    });
    api.addEventListener({
        name: 'dosaveshenhetype'
    }, function (ret) {
        app.VisitTypeName = ret.value.item.text;
        app.VisitType = ret.value.item.id;
    })

};
